
// Boost Includes ==============================================================
#include <boost/python.hpp>
#include <boost/cstdint.hpp>

// Includes ====================================================================
#include <OpenSG/OSGMaterialChunk.h>
#include <OpenSG/OSGMaterialChunkBase.h>
#include <OsgPtrHelpers.h>

// Using =======================================================================
using namespace boost::python;

// Declarations ================================================================
namespace  {

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_MaterialChunk_dump_overloads_0_2, dump, 0, 2)

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_MaterialChunk_activate_overloads_1_2, activate, 1, 2)

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_MaterialChunk_changeFrom_overloads_2_3, changeFrom, 2, 3)

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_MaterialChunk_deactivate_overloads_1_2, deactivate, 1, 2)


}// namespace


// Module ======================================================================
void Export_src_pyste_gen_MaterialChunk()
{
    scope* osg_MaterialChunkBase_scope = new scope(
    class_< osg::MaterialChunkBase, bases< osg::StateChunk > , boost::noncopyable >("MaterialChunkBase", no_init)
//        .def_readonly("DiffuseFieldMask", &osg::MaterialChunkBase::DiffuseFieldMask)
//        .def_readonly("AmbientFieldMask", &osg::MaterialChunkBase::AmbientFieldMask)
//        .def_readonly("SpecularFieldMask", &osg::MaterialChunkBase::SpecularFieldMask)
//        .def_readonly("EmissionFieldMask", &osg::MaterialChunkBase::EmissionFieldMask)
//        .def_readonly("ShininessFieldMask", &osg::MaterialChunkBase::ShininessFieldMask)
//        .def_readonly("LitFieldMask", &osg::MaterialChunkBase::LitFieldMask)
//        .def_readonly("ColorMaterialFieldMask", &osg::MaterialChunkBase::ColorMaterialFieldMask)
//        .def_readonly("BackMaterialFieldMask", &osg::MaterialChunkBase::BackMaterialFieldMask)
//        .def_readonly("BackDiffuseFieldMask", &osg::MaterialChunkBase::BackDiffuseFieldMask)
//        .def_readonly("BackAmbientFieldMask", &osg::MaterialChunkBase::BackAmbientFieldMask)
//        .def_readonly("BackSpecularFieldMask", &osg::MaterialChunkBase::BackSpecularFieldMask)
//        .def_readonly("BackEmissionFieldMask", &osg::MaterialChunkBase::BackEmissionFieldMask)
//        .def_readonly("BackShininessFieldMask", &osg::MaterialChunkBase::BackShininessFieldMask)
//        .def_readonly("BackColorMaterialFieldMask", &osg::MaterialChunkBase::BackColorMaterialFieldMask)
//        .def_readonly("MTInfluenceMask", &osg::MaterialChunkBase::MTInfluenceMask)
        .def("getClassType", &osg::MaterialChunkBase::getClassType, return_internal_reference< 1 >())
        .def("getClassTypeId", &osg::MaterialChunkBase::getClassTypeId)
        .def("getType", (osg::FieldContainerType& (osg::MaterialChunkBase::*)() )&osg::MaterialChunkBase::getType, return_internal_reference< 1 >())
        .def("getType", (const osg::FieldContainerType& (osg::MaterialChunkBase::*)() const)&osg::MaterialChunkBase::getType, return_internal_reference< 1 >())
        .def("getContainerSize", &osg::MaterialChunkBase::getContainerSize)
        //.def("getDiffuse", (osg::Color4f& (osg::MaterialChunkBase::*)() )&osg::MaterialChunkBase::getDiffuse, return_value_policy< copy_const_reference >())
        .def("getDiffuse", (const osg::Color4f& (osg::MaterialChunkBase::*)() const)&osg::MaterialChunkBase::getDiffuse, return_value_policy< copy_const_reference >())
        //.def("getAmbient", (osg::Color4f& (osg::MaterialChunkBase::*)() )&osg::MaterialChunkBase::getAmbient, return_value_policy< copy_const_reference >())
        .def("getAmbient", (const osg::Color4f& (osg::MaterialChunkBase::*)() const)&osg::MaterialChunkBase::getAmbient, return_value_policy< copy_const_reference >())
        //.def("getSpecular", (osg::Color4f& (osg::MaterialChunkBase::*)() )&osg::MaterialChunkBase::getSpecular, return_value_policy< copy_const_reference >())
        .def("getSpecular", (const osg::Color4f& (osg::MaterialChunkBase::*)() const)&osg::MaterialChunkBase::getSpecular, return_value_policy< copy_const_reference >())
        //.def("getEmission", (osg::Color4f& (osg::MaterialChunkBase::*)() )&osg::MaterialChunkBase::getEmission, return_value_policy< copy_const_reference >())
        .def("getEmission", (const osg::Color4f& (osg::MaterialChunkBase::*)() const)&osg::MaterialChunkBase::getEmission, return_value_policy< copy_const_reference >())
        //.def("getShininess", (osg::Real32& (osg::MaterialChunkBase::*)() )&osg::MaterialChunkBase::getShininess, return_value_policy< copy_const_reference >())
        .def("getShininess", (const osg::Real32& (osg::MaterialChunkBase::*)() const)&osg::MaterialChunkBase::getShininess, return_value_policy< copy_const_reference >())
        //.def("getLit", (bool& (osg::MaterialChunkBase::*)() )&osg::MaterialChunkBase::getLit, return_value_policy< copy_const_reference >())
        .def("getLit", (const bool& (osg::MaterialChunkBase::*)() const)&osg::MaterialChunkBase::getLit, return_value_policy< copy_const_reference >())
        //.def("getColorMaterial", (GLenum& (osg::MaterialChunkBase::*)() )&osg::MaterialChunkBase::getColorMaterial, return_value_policy< copy_const_reference >())
        .def("getColorMaterial", (const GLenum& (osg::MaterialChunkBase::*)() const)&osg::MaterialChunkBase::getColorMaterial, return_value_policy< copy_const_reference >())
        //.def("getBackMaterial", (bool& (osg::MaterialChunkBase::*)() )&osg::MaterialChunkBase::getBackMaterial, return_value_policy< copy_const_reference >())
        .def("getBackMaterial", (const bool& (osg::MaterialChunkBase::*)() const)&osg::MaterialChunkBase::getBackMaterial, return_value_policy< copy_const_reference >())
        //.def("getBackDiffuse", (osg::Color4f& (osg::MaterialChunkBase::*)() )&osg::MaterialChunkBase::getBackDiffuse, return_value_policy< copy_const_reference >())
        .def("getBackDiffuse", (const osg::Color4f& (osg::MaterialChunkBase::*)() const)&osg::MaterialChunkBase::getBackDiffuse, return_value_policy< copy_const_reference >())
        //.def("getBackAmbient", (osg::Color4f& (osg::MaterialChunkBase::*)() )&osg::MaterialChunkBase::getBackAmbient, return_value_policy< copy_const_reference >())
        .def("getBackAmbient", (const osg::Color4f& (osg::MaterialChunkBase::*)() const)&osg::MaterialChunkBase::getBackAmbient, return_value_policy< copy_const_reference >())
        //.def("getBackSpecular", (osg::Color4f& (osg::MaterialChunkBase::*)() )&osg::MaterialChunkBase::getBackSpecular, return_value_policy< copy_const_reference >())
        .def("getBackSpecular", (const osg::Color4f& (osg::MaterialChunkBase::*)() const)&osg::MaterialChunkBase::getBackSpecular, return_value_policy< copy_const_reference >())
        //.def("getBackEmission", (osg::Color4f& (osg::MaterialChunkBase::*)() )&osg::MaterialChunkBase::getBackEmission, return_value_policy< copy_const_reference >())
        .def("getBackEmission", (const osg::Color4f& (osg::MaterialChunkBase::*)() const)&osg::MaterialChunkBase::getBackEmission, return_value_policy< copy_const_reference >())
        //.def("getBackShininess", (osg::Real32& (osg::MaterialChunkBase::*)() )&osg::MaterialChunkBase::getBackShininess, return_value_policy< copy_const_reference >())
        .def("getBackShininess", (const osg::Real32& (osg::MaterialChunkBase::*)() const)&osg::MaterialChunkBase::getBackShininess, return_value_policy< copy_const_reference >())
        //.def("getBackColorMaterial", (GLenum& (osg::MaterialChunkBase::*)() )&osg::MaterialChunkBase::getBackColorMaterial, return_value_policy< copy_const_reference >())
        .def("getBackColorMaterial", (const GLenum& (osg::MaterialChunkBase::*)() const)&osg::MaterialChunkBase::getBackColorMaterial, return_value_policy< copy_const_reference >())
        .def("setDiffuse", &osg::MaterialChunkBase::setDiffuse)
        .def("setAmbient", &osg::MaterialChunkBase::setAmbient)
        .def("setSpecular", &osg::MaterialChunkBase::setSpecular)
        .def("setEmission", &osg::MaterialChunkBase::setEmission)
        .def("setShininess", &osg::MaterialChunkBase::setShininess)
        .def("setLit", &osg::MaterialChunkBase::setLit)
        .def("setColorMaterial", &osg::MaterialChunkBase::setColorMaterial)
        .def("setBackMaterial", &osg::MaterialChunkBase::setBackMaterial)
        .def("setBackDiffuse", &osg::MaterialChunkBase::setBackDiffuse)
        .def("setBackAmbient", &osg::MaterialChunkBase::setBackAmbient)
        .def("setBackSpecular", &osg::MaterialChunkBase::setBackSpecular)
        .def("setBackEmission", &osg::MaterialChunkBase::setBackEmission)
        .def("setBackShininess", &osg::MaterialChunkBase::setBackShininess)
        .def("setBackColorMaterial", &osg::MaterialChunkBase::setBackColorMaterial)
        .def("getBinSize", &osg::MaterialChunkBase::getBinSize)
        .def("copyToBin", &osg::MaterialChunkBase::copyToBin)
        .def("copyFromBin", &osg::MaterialChunkBase::copyFromBin)
        .def("create", &osg::MaterialChunkBase::create)
        .def("createEmpty", &osg::MaterialChunkBase::createEmpty)
        .def("shallowCopy", &osg::MaterialChunkBase::shallowCopy)
        .staticmethod("getClassType")
        .staticmethod("create")
        .staticmethod("createEmpty")
        .staticmethod("getClassTypeId")
    );

    scope().attr("LitFieldId") = (int)osg::MaterialChunkBase::LitFieldId;
    scope().attr("BackDiffuseFieldId") = (int)osg::MaterialChunkBase::BackDiffuseFieldId;
    scope().attr("EmissionFieldId") = (int)osg::MaterialChunkBase::EmissionFieldId;
    scope().attr("BackAmbientFieldId") = (int)osg::MaterialChunkBase::BackAmbientFieldId;
    scope().attr("AmbientFieldId") = (int)osg::MaterialChunkBase::AmbientFieldId;
    scope().attr("NextFieldId") = (int)osg::MaterialChunkBase::NextFieldId;
    scope().attr("BackEmissionFieldId") = (int)osg::MaterialChunkBase::BackEmissionFieldId;
    scope().attr("ShininessFieldId") = (int)osg::MaterialChunkBase::ShininessFieldId;
    scope().attr("BackSpecularFieldId") = (int)osg::MaterialChunkBase::BackSpecularFieldId;
    scope().attr("DiffuseFieldId") = (int)osg::MaterialChunkBase::DiffuseFieldId;
    scope().attr("BackColorMaterialFieldId") = (int)osg::MaterialChunkBase::BackColorMaterialFieldId;
    scope().attr("ColorMaterialFieldId") = (int)osg::MaterialChunkBase::ColorMaterialFieldId;
    scope().attr("BackMaterialFieldId") = (int)osg::MaterialChunkBase::BackMaterialFieldId;
    scope().attr("SpecularFieldId") = (int)osg::MaterialChunkBase::SpecularFieldId;
    scope().attr("BackShininessFieldId") = (int)osg::MaterialChunkBase::BackShininessFieldId;

    delete osg_MaterialChunkBase_scope;

    class_< osg::MaterialChunk, bases< osg::MaterialChunkBase > , boost::noncopyable, osg::MaterialChunkRefPtr >("MaterialChunk", no_init)
        .def("getStaticClassId", &osg::MaterialChunk::getStaticClassId)
        .def("changed", &osg::MaterialChunk::changed)
        .def("dump", &osg::MaterialChunk::dump, osg_MaterialChunk_dump_overloads_0_2())
        .def("activate", &osg::MaterialChunk::activate, osg_MaterialChunk_activate_overloads_1_2())
        .def("changeFrom", &osg::MaterialChunk::changeFrom, osg_MaterialChunk_changeFrom_overloads_2_3())
        .def("deactivate", &osg::MaterialChunk::deactivate, osg_MaterialChunk_deactivate_overloads_1_2())
        .def("isTransparent", &osg::MaterialChunk::isTransparent)
        .def("switchCost", &osg::MaterialChunk::switchCost)
        .staticmethod("getStaticClassId")
        //.def( self < other< osg::StateChunk >() )
        //.def( self == other< osg::StateChunk >() )
        //.def( self != other< osg::StateChunk >() )
    ;


    register_ptr_to_python<osg::MaterialChunkPtr>();
    implicitly_convertible<osg::MaterialChunkRefPtr, osg::MaterialChunkPtr>();
    implicitly_convertible<osg::MaterialChunkPtr, osg::StateChunkPtr>();

    def("RefPtr", &pyopensg::ToRefPtr<osg::MaterialChunkPtr>);
    def("FCPtr", &pyopensg::ToFcPtr<osg::MaterialChunkPtr>);
}

